package com.liujit.standard.basis.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.liujit.standard.basis.admin.domain.result.LoginInfoResult;
import com.liujit.standard.basis.admin.model.SysMenu;
import com.liujit.standard.basis.admin.model.SysUser;
import com.liujit.standard.basis.admin.domain.params.LoginParam;
import com.liujit.standard.basis.admin.domain.params.UpdPasswordParam;

import java.util.List;

/**
 * @Description 系统用户Service实现类
 * @Author LiuJun
 * @Date 2021-03-25 17:12:35
 */
public interface SysUserService extends IService<SysUser> {

    /**
     * 登录
     *
     * @param param
     * @return
     */
    String login(LoginParam param);

    /**
     * 获取登录信息
     *
     * @return
     */
    LoginInfoResult info();

    /**
     * 查询路由
     *
     * @param userId
     * @param loginName
     * @return
     */
    List<SysMenu> getRouters(Long userId, String loginName);

    /**
     * 查询权限
     *
     * @param userId
     * @param loginName
     * @return
     */
    List<SysMenu> getAuths(Long userId, String loginName);

    /**
     * 用户添加
     *
     * @param sysUser
     * @param roleIds
     * @return
     */
    String add(SysUser sysUser, List<Long> roleIds);

    /**
     * 用户更新
     *
     * @param sysUser
     * @param roleIds
     * @return
     */
    Boolean upd(SysUser sysUser, List<Long> roleIds);

    /**
     * 用户删除
     *
     * @param id
     * @return
     */
    Boolean del(String id);

    /**
     * 修改角色
     *
     * @param userId
     * @param roleIds
     * @return
     */
    Boolean updRole(Long userId, List<Long> roleIds);

    /**
     * 校验密码
     *
     * @param password
     * @return
     */
    Boolean checkPassword(String password);

    /**
     * 修改密码
     *
     * @param param
     * @return
     */
    Boolean updPassword(UpdPasswordParam param);
}
